Method and apparatus for automatic form filling

ABSTRACT

A method and apparatus allowing for entry of form data in a browser. In the described embodiment, a browser automation program executes on the user&#39;s computer and communicates with a browser program in order to determine when forms are encountered.

CROSS REFERENCE TO RELATED APPLICATIONS

This application is a continuation of U.S. application Ser. No.09/436,973, filed Nov. 9, 1999 (and which is incorporated by referenceherein in its entirety), which itself claims the benefit of U.S.Provisional Application No. 60/107,791, filed Nov. 10, 1998.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates to the field graphical user interfaces andmore particularly to a method for entering information into a form on ascreen display associated with an electronic device.

2. Description of the Related Art

Many a site on the Internet's World Wide Web (hereafter “web site,” “webpage” or simply “site”) require the entry of various information inorder to gain full access to the site and the services offered by thesite. For example, many commercial sites require a user to set up anaccount and, in doing so, to provide various levels of personalinformation. Typically, the information is relatively repetitive fromsite to site—e.g., name, address, telephone number, electronic mail(email) address, credit card number, etc. In some cases, the informationmust be entered each time the user attempts to use the site. In othercases, an account is actually set up for the user and maintained—theuser needs only to enter the full information the first time the site isaccessed.

An example of an account set up screen is provided in FIG. 1. The figureillustrates a screen shot 100 of a web site accessed via, for example,web browser software executing on computing device such as a personalcomputer. The web site provides for online ordering, in this particularinstance, of cookies. As can be seen, the user is invited to completethe shipping and billing information by visiting each data field andentering the appropriate information (e.g., name 101, address 102, phonenumber 103, email address 104, etc.). Alternatively, at some web sites,the user may click on a button, hyperlink, etc., to log in and fill inordering information automatically (presuming the user has a previouslyset up account).

One method of addressing the inconvenience of repetitive data entry ofaccount information is the so-called “wallet” technology. Using“wallets”, a user may enter certain information (name, address,billing/credit card information) once and sites that run the particularwallet technology will be able to receive the information withoutrequiring the user to reenter the data. Unfortunately, this technologyrequires sites to execute the wallet technology in order to allow a userto benefit from it. A diagram 200 illustrating a particular embodimentof the wallet technology is shown in FIG. 2.

One other method of addressing the inconvenience of repetitive dataentry is the so-called “type-ahead” technology in which the user'scomputing system attempts to “remember” certain information and, if auser starts to type a sequence of characters using, for example, akeyboard or other character input device, the system attempts torecognize the character sequence and complete the sequence. For example,if the user named John Smith starts to type his name in a name field,the system may recognize the user is typing “John Smith” after the userhas only typed “Joh” and automatically fill in the remaining “n Smith”.

Unfortunately, the type ahead technology is limited in that it may ormay not correctly recognize the phrase being typed and implementationsare typically browser software dependent. Moreover, the type aheadtechnology requires the user to independently visit each field in aform, rather than filling in multiple fields with a single click.

Thus, it would be useful to provide a method and apparatus which reducesthe inconvenience of repetitive data entry. It would be particularlyuseful to provide a method and apparatus which was not browser dependentand which did not require implementation by each individual web site inorder to allow a user to benefit from it.

BRIEF SUMMARY OF THE INVENTION

A method and apparatus providing for improved automation for entry ofdata in forms displayed on a screen via a web browser.

BRIEF DESCRIPTION OF THE SEVERAL VIEWS OF THE DRAWINGS

FIG. 1 is an exemplary form displayed by a web browser.

FIG. 2 illustrated a prior art wallet technology.

FIG. 3 illustrates a network as may utilize an embodiment of theinvention.

FIG. 4 illustrates a form helper window as may be utilized by anembodiment of the present invention.

FIG. 5 illustrates a form helper window as may be utilized by anembodiment of the present invention.

FIG. 6 illustrates a form helper window as may be utilized by anembodiment of the present invention.

FIG. 7 illustrates a form helper window as may be utilized by anembodiment of the present invention.

FIG. 8 illustrates a login helper window as may be utilized by anembodiment of the present invention.

FIG. 9 illustrates a login helper window as may be utilized by anembodiment of the present invention.

For ease of reference, reference numerals in the accompanying drawingstypically are in the form “drawing number” followed by two digits, xx;for example, reference numerals may be numbered 3xx. In certain cases, areference numeral may be introduced on one drawing and the samereference numeral may be utilized on other drawings to refer to the sameitem.

DETAILED DESCRIPTION OF THE INVENTION

FIG. 3 provides a diagram illustrating an overall system implementing anembodiment of the present invention. In the described embodiment, a usercomputing device, such as user computer 301, is automated with browserautomation software 302. The browser automation software interfaces withany of a number of web browsers 303 such as Netscape Navigator availablefrom Netscape Corporation of Mountain View, Calif. or Internet Exploreravailable from Microsoft Corporation of Redmond, Wash. As a user movesbetween web pages in the World Wide Web using browser 303, the browserautomation program 302 communicates with the browser and determines theUniversal Resource Locator (URL) of the web site 306 being browsed. Incertain embodiments, functionality of the browser automation program 302may be added to the browser program 303 rather than executing theautomation program 302 as a separate executable program.

In the described embodiment, the browser automation program 302 may gainknowledge of the format of a form encountered on any number of websites. For purposes of this invention, a web site for which the formatof the form has been learned by the browser automation program 302 istermed a “scripted” site. One method for the browser automation programto gain this knowledge is for the user to have previously filled out thesame form. The browser automation program 302 then associates thecontent and order of the fields for the form with the content ofpersonal data in the user database 304 (e.g., the program 302 learnsthat the field named “Name” on a particular form should be associatedwith the user's name in the user database 304).

A second method for the browser automation program to gain thisknowledge is for the form to have been analyzed and information storedregarding the fields and expected contents. This may be done, forexample, for popular or well known web sites that utilize forms. Theinformation may be stored locally on each user's computer 301 or may bestored at a central location accessible to the user via network 307,such as the browser automation home site 305.

In an embodiment that stores this information at the home site 305, whena new URL is encountered, the home site 305 is contacted over thenetwork 307 (it should be noted that the network could be the Internetor an intranet). In certain embodiments, information may be stored onthe user's computer allowing local identification of which forms arestored at the home site 305. For example, a hash code may be developedto allow local (at the user's computer) determination of whether theform is scripted, i.e., whether information regarding the format of theform is stored, at the home site.

In addition, when encountering a form, whether for the first or asubsequent time, the browser automation program 302 may analyze theunderlying structure of the form to determine if there are fields forwhich data is available from the user database 304. Typically, thisprocess may involve analyzing the HyperText Markup Language (HTML),extensible Markup Language (XML), or other underlying code received fromthe visited web site 306.

Regardless of the method, if a script is available for the form, a popup dialog window 401 is displayed in conjunction with the visited website. An example in FIG. 4 shows pop up window 401 overlaying a portionof a visited web site, for which a partial screen shot 100 isillustrated. The pop up window 401 allows the user to automaticallyplace the information displayed in the fields of the pop up window intothe corresponding fields of the form provided at the web page that isdisplayed on the screen of the user's computer. The user may supply allof the listed information in pop up window 401 or may modify some or allof it before supplying it to the form. FIG. 7 illustrates a web pageform 100 filled in automatically by selecting the “fill in” button.

The pop up window 401 is better viewed with reference to FIG. 5. Theuser may supply the necessary information for the form provided at thescripted site by selecting the “fill in” button 402 of pop up window 401(assuming a script exists for the form or alternatively the program 302can gain sufficient knowledge of the form from analyzing the underlyingHTML). The “fill in” button may be selected, for example, by performinga single click of a user input device such as a mouse. Alternatively, ifthe browser automation program 302 is unfamiliar with the form, the useris provided with the pop up window 601 shown in FIG. 6 (FIG. 6 does notillustrate the form for which information displayed in pop up window 601may be supplied). Pop up window 601 generally is utilized the first timea form is encountered, so that the user may select each of theindividual fields in the window. The user may double click on any oneparticular field in pop up window 601 to supply only that field ofinformation to the form. That information is supplied, in particular, tothe currently focused field in the form displayed by the browser. Thebrowser automation software then causes the browser to automaticallyadvance the focus to the next field in the form, in a step wise fashion.For example, if the user double clicks on the name field 602, only thename field is supplied from the pop up window to the name field 101 inthe form displayed on screen 100. Alternatively, the user may “drag anddrop” the contents of a field in pop up window 601 to the correspondingfield in the form displayed on screen 100.

It should be further noted that the pop up windows illustrated in FIGS.5 and 6 provide for multiuser support. For example, if multipleindividuals share the same computer or web browser software, informationabout each user may be stored and subsequently accessed by supplying auniquely identifying user name as input to the browser automationprogram 302. A user can select their data by specifying their name atfield 403 in pop up window 401. In one embodiment, field 403 is set upas a pull down list providing for the ability to select one of multipleusers or to add a new user.

Moreover, for each user, any one of a number of profiles 404 may beprovided from which to select to fill in the form. For example, the usermay click on different profiles for home, work, or other. The multipleprofiles allow for different sets of data to be input into the form,e.g., shipping address, phone, fax, and email address. For instance,depending on whether the user desires to communicate with the providerof the web site from home, work, or some other logical or physicaldesignation, the user can select a desired profile to provide theappropriate information necessary for the web site provider tocommunicate or transact with the user accordingly. FIG. 4 illustratesthe user's home profile is selected.

Yet further flexibility is provided by the browser automation program inutilizing pull down lists 405 for many of the fields of personalinformation accessible via pop up window 401. The user may specify oneof multiple shipping addresses, phone numbers, email addresses, etc, foreach profile. Thus, if a user maintains multiple offices and wishes toregister or otherwise communicate personal contact information to aparticular web site, the user may specify one particular office address.The user may then register at another web site using a different officeaddress, by selecting a different office address via the pull down listassociated with the shipping address field in the pop up window 401.

The information displayed in the pop up window 401 may have beeninitially supplied directly by the user or may have been learned as theuser entered data in the normal course of 20 filling out forms on webpages. The data is stored, typically in an encrypted format, on theuser's computer 301 as user data in database 304. When the browserautomation program 302 is executed, the user is asked for a password inorder to access the encrypted data. In one embodiment, the data isstored in a separate file which may be copied by the user andtransported from computer to computer. In one embodiment, the datawithin the file 304 is retained with time stamp information. Using thetimestamp information, the browser automation program 302 may merge twouser data files, keeping the most recent information from both files.

In addition to assisting in completing relatively long forms as wasshown in FIGS. 4-7, the browser automation program 302 can assist withother types of forms 800. An example is provided in FIG. 8 in which a“login helper” pop up dialog window 801 is displayed overlaying loginscreen 800. For ease of reference, dialog window 801 is shown separatelyin FIG. 9 as well. The browser automation program 302 has learned theuser's login names and passwords for given web sites (in this case, theMicrosoft msn Hotmail web site). One problem increasingly facing webusers is the need to remember not only many passwords but also many useridentifications, or “member names”. The browser automation programstores in the user data file 304 the login member names and passwords(in an encrypted format) for sites for which the user has registered.When the user accesses the URL for a site, the user is presented withthe login helper 801. Login helper 801 allows the user to select theappropriate member name and automatically then enters the correctpassword for the user. Of course, the user may have multiple membernames for a particular site and the browser automation programs 302store each of the various member names. The user may select the desiredmember name from a pull down list 802 in pop up window 801. Note alsothat, as in the case of pop up window 401, login helper window 801provides for multiuser support, by allowing a user to select from one ofmultiple users via pull down list 803.

The user may be provided with the option of having the form filled in byselecting the login button 804, for example, via a single click of amouse pointer device. Thus, for example, when a login form isencountered, the browser automation program 302 may fill in the formwith a minimum number of keystrokes or input from the user to log in tothe site.

In one embodiment, changes to the information stored in the userdatabase 304 causes notifications to be automatically sent to web siteswhich have been supplied with this data. Thus, for example, if the userchanges the home address information, information may be sent to thoseweb sites which have been previously supplied with the user's homeaddress information notifying the web sites of the change. Theappropriate scripts for updating this information may be stored, forexample, at the home site 305.

ALTERNATIVES TO THE PREFERRED EMBODIMENT OF THE PRESENT INVENTION

There are, of course, alternatives to the described embodiment which arewithin the reach of one of ordinary skill in the relevant art. Thepresent invention is intended to be limited only by the claims presentedbelow.

Thus, what has been disclosed is a method and apparatus for entry ofform data in a web browser.

1. A method for inputting information into a form, comprising: detectingan access to a first site that presents a form for receiving data from auser; determining whether a script for completing at least a portion ofthe form resides in a database local to the user; accessing a secondsite to ascertain whether the second site has a version of the script ifthe script does not reside in the local database; and completing atleast a portion of the form utilizing the script.
 2. The method of claim1, wherein a browser is monitored for detecting the access to the firstsite.
 3. The method of claim 1, wherein the second site is accessed viaa network.
 4. The method of claim 1, wherein an identifier associatedwith the first site is utilized to determined whether the script residesin at least one of the local database and the second site.
 5. The methodof claim 4, wherein the identifier comprises a Universal ResourceLocator (URL).
 6. The method of claim 1, wherein the script includescontact information associated with the user for inputting into theform.
 7. The method of claim 1, wherein the script is utilized topresent data for completing the at least a portion of the form prior tothe user.
 8. The method of claim 7, wherein the user is permitted tomodify the presented data prior to the completing.
 9. The method ofclaim 7, wherein the presented data is presented in a pop-up windowdisplayed to the user.
 10. A system for inputting information into aform, comprising: means for detecting an access to a first site thatpresents a form for receiving data from a user; means for determiningwhether a script for completing at least a portion of the form residesin a database local to the user; means for accessing a second site toascertain whether the second site has a version of the script if thescript does not reside in the local database; and means for completingat least a portion of the form utilizing the script.
 11. The system ofclaim 10, wherein a browser is monitored for detecting the access to thefirst site.
 12. The system of claim 10, wherein the second site isaccessed via a network.
 13. The system of claim 10, wherein anidentifier associated with the first site is utilized to determinedwhether the script resides in at least one of the local database and thesecond site.
 14. The system of claim 13, wherein the identifiercomprises a Universal Resource Locator (URL).
 15. The system of claim10, wherein the script includes contact information associated with theuser for inputting into the form.
 16. The system of claim 10, whereinthe script is utilized to present data for completing the at least aportion of the form prior to the user.
 17. The system of claim 16,wherein the user is permitted to modify the presented data prior to thecompleting.
 18. The system of claim 16, wherein the presented data ispresented in a pop-up window displayed to the user.
 19. A computerprogram product for inputting information into a form, comprising:computer code for detecting an access to a first site that presents aform for receiving data from a user; computer code for determiningwhether a script for completing at least a portion of the form residesin a database local to the user; computer code for accessing a secondsite to ascertain whether the second site has a version of the script ifthe script does not reside in the local database; and computer code forcompleting at least a portion of the form utilizing the script.
 20. Thecomputer program product of claim 19, wherein an identifier associatedwith the first site is utilized to determined whether the script residesin at least one of the local database and the second site.